In existence today there are examples, in which there are multiple bus agents that are trying to gain access to a shared resource, such as the system bus or another type of interconnect. In order for an agent to be granted the right to use the shared resource, the initiator must first make a request to gain access to the system bus. Then, the arbitration circuit considers all of the access requests and makes a determination as to which agent will be granted access to the shared resource. In order for an agent to be granted access to the system bus, it must first request access. It is possible for there to be times in which there is not any agent that wants to use the system bus. When this condition occurs, there may be a default winner, which may be required to hold the current value or to create an Idle bus cycle on the system bus. The default winner is fixed and will always be the same agent. The default winner can receive a grant even when it did not first request access. This may present a problem.
An example of this type of situation may be illustrated using the system as shown in FIG. 1. This system consists of bus agents, 100, 101, 102, and 103. These agents communicate via a system bus 200. In order for a transfer across the system bus 200 to occur, an agent (such as a bus agent 100) must first request access to the bus (such as the system bus 200) from the arbiter 300. The agents communicate to the arbiter over the request/grant interfaces 400, 401, 402, and 403. One example of a timing diagram is shown in FIG. 2. Here it can be seen that a request from Agent 100, occurs in one cycle (clock cycle 0), and then on a subsequent cycle a grant may be received that enables the agent's transfer to occur. FIG. 3 shows the case when none of the bus agents 100, 101, 102, nor 103 are requesting access to the system bus and the arbiter gives the default grant 310 to Agent 100 which is then required to put out an idle bus cycle 320.
One problem with this approach shows up when an interconnect must span large distances thereby requiring an additional delay in order to transfer information such as the arbitration request or the resultant grant of the system bus. Since a grant must always be preceded by a request the best-case performance of the system will be reduced by this additional delay both to make the request and to receive access grant notification. FIG. 4 shows an example of a case in which Agent 101 is ready to transfer at cycle 1 but must wait for a delay in order to first issue the request 410 and then receive the grant 420. This presents a problem as some system requirements may not be able to tolerate this amount of additional delay for best-case performance.